home *** CD-ROM | disk | FTP | other *** search
- #!/bin/sh
- # artsdsp - wrapper script to allow *some* binary only programs to use artsd
- # based on the esddsp script
-
- # keep this in sync with artsversion.h
- version="1.5.6"
-
- # default values for script variables
- verbose=0
- set_name=0
- single_thread=0
-
- # check for artsdsp options
- while test $# -gt 0; do
-
- case "$1" in
-
- -h|--help)
- echo "artsdsp - attempt to reroute audio device to artsd"
- echo " "
- echo "artsdsp [options] application arguments"
- echo " "
- echo "options:"
- echo "-h, --help show brief help"
- echo "-n, --name=NAME use name to identify player to artsd"
- echo "-m, --mmap emulate memory mapping (i.e. for quake)"
- echo "-s, --single-threaded use the single-threaded version"
- echo "-v, --verbose show parameters"
- echo "-V, --version show version"
- exit 0
- ;;
-
- -n)
- shift
- if test $# -gt 0; then
- export ARTSDSP_NAME=$1
- else
- echo "no player name specified"
- exit 1
- fi
- shift
- set_name=1
- ;;
-
- --name*)
- export ARTSDSP_NAME=`echo $1 | sed -e 's/^[^=]*=//g'`
- set_name=1
- shift
- ;;
-
- -v|--verbose)
- verbose=1
- shift
- ;;
-
- -V|--version)
- echo "artsdsp $version"
- exit
- ;;
-
- -m|--mmap)
- export ARTSDSP_MMAP=1
- shift
- ;;
-
- -s|--single-threaded)
- single_thread=1
- shift
- ;;
-
- *)
- # no more artsdsp options, get on with life
- break
- ;;
- esac
- done
-
- # echo options if verbose specified
- if test "$verbose" = 1; then
- ARTSDSP_VERBOSE=1
- export ARTSDSP_VERBOSE
- echo "artsdsp: $version"
- echo "name: $ARTSDSP_NAME"
- echo "command line: $@"
- if test "$single_thread" = 1; then
- echo "threaded: no"
- else
- echo "threaded: yes"
- fi
- fi
-
- # setup artsdsp preload to hijack calls made to /dev/dsp
- origargs="$@"
- binary=`which $1`
- machine=`uname -m`
-
- set `file -L $binary`
-
- case $2 in
- ELF)
- ;;
- *)
- echo "artsdsp works only for binaries"
- exit 1
- esac
-
- case $3 in
- 32-bit)
- arch_libdir=lib
- ;;
- 64-bit)
- arch_libdir=lib64
- ;;
- *)
- exit 1
- esac
-
- set $origargs
-
- prefix=/usr
- exec_prefix=${prefix}
- libdir=${prefix}/${arch_libdir}
-
- if test "$single_thread" = 1; then
- LD_PRELOAD=${libdir}/libartsdsp_st.so.0
- else
- LD_PRELOAD=${libdir}/libartsdsp.so.0:${libdir}/libartsc.so.0
- fi
- if test -f ${libdir}/libdl.so.2; then
- LD_PRELOAD=$LD_PRELOAD:${libdir}/libdl.so.2
- fi
- export LD_PRELOAD
-
- # invoke the program with the args given
- exec "$@"
-